Shapeliness analysis of functional programs with algebraic data types
نویسندگان
چکیده
منابع مشابه
Type Assisted Synthesis of Programs with Algebraic Data Types
In this paper, we show how synthesis can help implement interesting functions involving pattern matching and algebraic data types. One of the novel aspects of this work is the combination of type inference and counterexample-guided inductive synthesis (CEGIS) in order to support very high-level notations for describing the space of possible implementations that the synthesizer should consider. ...
متن کاملSize Analysis of Algebraic Data Types
We present a size-aware type system for a first-order functional language with algebraic data types, where types are annotated with polynomials over size variables. We define how to generate typing rules for each data type, provided its user defined size function meets certain requirements. As an example, a program for balancing binary trees is type checked. The type system is shown to be sound...
متن کاملExplaining Algebraic Theory with Functional Programs
A hierarchy of six important structures from abstract algebra (groups, rings, fields etc.) is introduced as Gofer class definitions and laws about them. Many instance declarations are provided, explaining the algebraic construction of integers, quotients, adding i, function spaces, polynomials, and matrices. The definitions include generalized implementations of polynomial division and matrix i...
متن کاملRefining algebraic data types
Our purpose is to formalize two potential refinements of single-sorted algebraic data types – subalgebras and algebras which satisfy equivalence relations – by considering their categorical interpretation. We review the usual categorical formalization of singleand multi-sorted algebraic data types as initial algebras, and the correspondence between algebraic data types and endofunctors. We intr...
متن کاملStatic Dependency Pair Method in Rewriting Systems for Functional Programs with Product, Algebraic Data, and ML-Polymorphic Types
For simply-typed term rewriting systems (STRSs) and higher-order rewrite systems (HRSs) à la Nipkow, we proposed a method for proving termination, namely the static dependency pair method. The method combines the dependency pair method introduced for first-order rewrite systems with the notion of strong computability introduced for typed λ-calculi. This method analyzes a static recursive struct...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Science of Computer Programming
سال: 2000
ISSN: 0167-6423
DOI: 10.1016/s0167-6423(99)00028-3